/* Copyright: Marcelo S. N. Mancini (Hipreme|MrcSnm), 2018 - 2021 License: [https://creativecommons.org/licenses/by/4.0/|CC BY-4.0 License]. Authors: Marcelo S. N. Mancini Copyright Marcelo S. N. Mancini 2018 - 2021. Distributed under the CC BY-4.0 License. (See accompanying file LICENSE.txt or copy at https://creativecommons.org/licenses/by/4.0/ */ module hip.api.input.mouse; enum HipMouseButton : ubyte { left, middle, right, button1, button2, any, invalid } interface IHipMouse { int[2] getPosition(uint id = 0); int[2] getDeltaPosition(uint id = 0); bool isPressed(HipMouseButton btn = HipMouseButton.left); bool isJustPressed(HipMouseButton btn = HipMouseButton.left); bool isJustReleased(HipMouseButton btn = HipMouseButton.left); ubyte getMulticlickCount(HipMouseButton btn = HipMouseButton.left); final bool isDoubleClicked(HipMouseButton btn = HipMouseButton.left) { return getMulticlickCount(btn) >= 2; } float[3] getScroll(); }